export const ACCEPT_CONFIG = {
  image: ['.png', '.jpg', '.jpeg', '.gif', '.bmp'],
  video: ['.mp4', '.rmvb', '.mkv', '.wmv', '.flv'],
  document: ['.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt','.csv', '.tif', '.tiff','.rar','.zip'],
  getAll(){
    return [...this.image, ...this.video, ...this.document]
  },
};

//dist/map转数组
export function mapToArray(map) {
  return [...map]
}

//数组转map
export function arrayToMap(arr) {
  let map = new Map(arr)
  return map
}

//dist/map转对象 要求map的key为字符串
export function strMapToObj(strMap) {
  let obj = Object.create(null)
  for (let [k, v] of strMap) {
    obj[k] = v
  }
  return obj
}

//对象转map
export function mapToObj(obj) {
  let map = new Map(Object.entries(obj))
  return map
}

//对象转map
export function objToStrMap(obj) {
  let strMap = new Map()
  for (let k of Object.keys(obj)) {
    strMap.set(k, obj[k])
  }
  return strMap
}

//Map 转为 JSON 要区分两种情况。一种情况是，Map 的键名都是字符串，这时可以选择转为对象 JSON。
export function strMapToJson(strMap) {
  return JSON.stringify(strMapToObj(strMap))
}

//另一种情况是，Map 的键名有非字符串，这时可以选择转为数组 JSON。
export function mapToArrayJson(map) {
  return JSON.stringify([...map])
}

//JSON 转为 Map 正常情况下，所有键名都是字符串。
export function jsonToStrMap(jsonStr) {
  return objToStrMap(JSON.parse(jsonStr))
}

export function jsonToMap(jsonStr) {
  return new Map(JSON.parse(jsonStr))
}

export function isNumber(val){
  var regPos = /^\d+(\.\d+)?$/; //非负浮点数
  var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
  if(regPos.test(val) && regNeg.test(val)){
    return true;
  }else{
    return false;
  }

}
